package com.kuaiyin.enums;

import com.baomidou.mybatisplus.annotation.EnumValue;
import com.fasterxml.jackson.annotation.JsonValue;
import lombok.Getter;

@Getter
public enum Status {
    /**
     *  0-禁用 1-启用
     */
    NORMAL(0, "禁用"),
    FROZEN(1, "启用");

    // 获取 code
    @EnumValue    // 枚举中的哪个字段的值作为数据库值
    private final Integer code;
    // 获取 message
    @JsonValue   // 标记JSON序列化时展示的字段
    private final String message;

    // 构造函数
    Status(Integer code, String message) {
        this.code = code;
        this.message = message;
    }

    /**
     * 根据 code 查找对应的枚举常量
     *
     * @param code code 值
     * @return 对应的枚举常量，如果找不到则返回 null
     */
    public static Status fromCode(Integer code) {
        if (code == null) {
            return null;
        }
        for (Status status : values()) {
            if (status.getCode().equals(code)) {
                return status;
            }
        }
        return null; // 如果没有匹配的 code，则返回 null
    }
}
